package com.wicket.okrapp.web.contorller;

import com.github.pagehelper.Page;
import com.wicket.okrapp.biz.service.PlanDataService;
import com.wicket.okrapp.biz.service.dto.req.BatchQueryPlanDataListReqDto;
import com.wicket.okrapp.biz.service.dto.req.QueryPlanDataDetailReqDto;
import com.wicket.okrapp.biz.service.dto.req.QueryPlanDataListReqDto;
import com.wicket.okrapp.biz.service.dto.res.BatchQueryPlanDataListRespDto;
import com.wicket.okrapp.biz.service.dto.res.QueryPlanDataDetailRespDto;
import com.wicket.okrapp.biz.service.dto.res.QueryPlanDataListRespDto;
import com.wicket.okrapp.common.ro.OkrResult;
import com.wicket.okrapp.common.util.CommonFunctionHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.wicket.okrapp.biz.service.dto.res.AddPlanDataComRespDto;
import com.wicket.okrapp.biz.service.dto.req.AddPlanDataComReqDto;
import com.wicket.okrapp.biz.service.dto.res.UndoBatchHandleEvaPlanUpdStatusComRespDto;
import com.wicket.okrapp.biz.service.dto.req.UndoBatchHandleEvaPlanUpdStatusComReqDto;
import com.wicket.okrapp.biz.service.dto.res.ReleaseBatchHandleEvaPlanUpdStatusComRespDto;
import com.wicket.okrapp.biz.service.dto.req.ReleaseBatchHandleEvaPlanUpdStatusComReqDto;
import com.wicket.okrapp.biz.service.dto.res.QueryMidPlanDataListRespDto;
import com.wicket.okrapp.biz.service.dto.req.QueryMidPlanDataListReqDto;
import com.wicket.okrapp.biz.service.dto.res.DeleteCurrentPlanDataComRespDto;
import com.wicket.okrapp.biz.service.dto.req.DeleteCurrentPlanDataComReqDto;
import com.wicket.okrapp.biz.service.dto.res.RefreshPlanDataComRespDto;
import com.wicket.okrapp.biz.service.dto.req.RefreshPlanDataComReqDto;
import com.wicket.okrapp.biz.service.dto.res.DeleteBusAppDocRelaComRespDto;
import com.wicket.okrapp.biz.service.dto.req.DeleteBusAppDocRelaComReqDto;
import com.wicket.okrapp.biz.service.dto.res.QueryBusAppDocRelaListComRespDto;
import com.wicket.okrapp.biz.service.dto.req.QueryBusAppDocRelaListComReqDto;
import com.wicket.okrapp.biz.service.dto.res.JudgeIsMainplanComRespDto;
import com.wicket.okrapp.biz.service.dto.req.JudgeIsMainplanComReqDto;
import com.wicket.okrapp.biz.service.dto.res.JudgeUpdatePlanDataUsableComRespDto;
import com.wicket.okrapp.biz.service.dto.req.JudgeUpdatePlanDataUsableComReqDto;
import com.wicket.okrapp.biz.service.dto.res.JudgeDeletePlanDataUsableComRespDto;
import com.wicket.okrapp.biz.service.dto.req.JudgeDeletePlanDataUsableComReqDto;
import com.wicket.okrapp.biz.service.dto.res.DeletePlanDataRespDto;
import com.wicket.okrapp.biz.service.dto.req.DeletePlanDataReqDto;
import com.wicket.okrapp.biz.service.dto.res.AddAllTypePlanDataRespDto;
import com.wicket.okrapp.biz.service.dto.req.AddAllTypePlanDataReqDto;
import com.wicket.okrapp.biz.service.dto.res.RefreshCurrentPlanDataRespDto;
import com.wicket.okrapp.biz.service.dto.req.RefreshCurrentPlanDataReqDto;
import com.wicket.okrapp.biz.service.dto.res.ArchiveCurrentPlanDataRespDto;
import com.wicket.okrapp.biz.service.dto.req.ArchiveCurrentPlanDataReqDto;
import com.wicket.okrapp.biz.service.dto.res.UpdatePlanDataRespDto;
import com.wicket.okrapp.biz.service.dto.req.UpdatePlanDataReqDto;
import com.wicket.okrapp.biz.service.dto.res.AddBusAppDocRelaComRespDto;
import com.wicket.okrapp.biz.service.dto.req.AddBusAppDocRelaComReqDto;
import com.wicket.okrapp.biz.service.dto.res.BatchAddBusAppDocRelaComRespDto;
import com.wicket.okrapp.biz.service.dto.req.BatchAddBusAppDocRelaComReqDto;
import com.wicket.okrapp.biz.service.dto.res.QueryPlanDataByPrimaryKeyDetailComRespDto;
import com.wicket.okrapp.biz.service.dto.req.QueryPlanDataByPrimaryKeyDetailComReqDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@RestController
@RequestMapping("/app/planData/")
public class PlanDataController {

    @Autowired
    PlanDataService planDataService;

    /**
     * D3-2批量查规划资料
     */
    @PostMapping("batchQueryPlanDataList")
    public OkrResult<BatchQueryPlanDataListRespDto> batchQueryPlanDataList(@RequestBody @Validated BatchQueryPlanDataListReqDto reqDTO) {
        return OkrResult.success(planDataService.batchQueryPlanDataList(reqDTO));
    }

/**
   * D3-5查规划资料详情
   */
    @PostMapping("queryPlanDataDetail")
    public OkrResult<QueryPlanDataDetailRespDto> queryPlanDataDetail(@RequestBody @Validated QueryPlanDataDetailReqDto reqDTO){
    return OkrResult.success(planDataService.queryPlanDataDetail(reqDTO));
    }
    /**
   * D3-5查询规划资料列表
   */
    @PostMapping("queryPlanDataList")
    public OkrResult<QueryPlanDataListRespDto> queryPlanDataList(@RequestBody @Validated QueryPlanDataListReqDto reqDTO){
    Page<?> page = CommonFunctionHelper.startPage(reqDTO.getPageNum(),reqDTO.getPageSize());

        QueryPlanDataListRespDto retData = planDataService.queryPlanDataList(reqDTO);

        retData.setPageNum(page.getPageNum());
        retData.setPageSize(page.getPageSize());
        retData.setTotalNum(page.getTotal());
        return OkrResult.success(retData);
    
    }
/**
   * D3-5新增规划资料(公共)
   */
    @PostMapping("addPlanDataCom")
    public OkrResult<AddPlanDataComRespDto> addPlanDataCom(@RequestBody @Validated AddPlanDataComReqDto reqDTO){
    return OkrResult.success(planDataService.addPlanDataCom(reqDTO));
    }
/**
   * D3-5撤销批次处理规划资料更新状态(公共)
   */
    @PostMapping("undoBatchHandleEvaPlanUpdStatusCom")
    public OkrResult<UndoBatchHandleEvaPlanUpdStatusComRespDto> undoBatchHandleEvaPlanUpdStatusCom(@RequestBody @Validated UndoBatchHandleEvaPlanUpdStatusComReqDto reqDTO){
    return OkrResult.success(planDataService.undoBatchHandleEvaPlanUpdStatusCom(reqDTO));
    }
/**
   * D3-5发布批次处理规划资料更新状态(公共)
   */
    @PostMapping("releaseBatchHandleEvaPlanUpdStatusCom")
    public OkrResult<ReleaseBatchHandleEvaPlanUpdStatusComRespDto> releaseBatchHandleEvaPlanUpdStatusCom(@RequestBody @Validated ReleaseBatchHandleEvaPlanUpdStatusComReqDto reqDTO){
    return OkrResult.success(planDataService.releaseBatchHandleEvaPlanUpdStatusCom(reqDTO));
    }
/**
   * D3-5查询中层规划资料列表
   */
    @PostMapping("queryMidPlanDataList")
    public OkrResult<QueryMidPlanDataListRespDto> queryMidPlanDataList(@RequestBody @Validated QueryMidPlanDataListReqDto reqDTO){
    return OkrResult.success(planDataService.queryMidPlanDataList(reqDTO));
    }
/**
   * D3-删除当前规划资料(公共)
   */
    @PostMapping("deleteCurrentPlanDataCom")
    public OkrResult<DeleteCurrentPlanDataComRespDto> deleteCurrentPlanDataCom(@RequestBody @Validated DeleteCurrentPlanDataComReqDto reqDTO){
    return OkrResult.success(planDataService.deleteCurrentPlanDataCom(reqDTO));
    }
/**
   * D3-5更新规划资料(公共)
   */
    @PostMapping("refreshPlanDataCom")
    public OkrResult<RefreshPlanDataComRespDto> refreshPlanDataCom(@RequestBody @Validated RefreshPlanDataComReqDto reqDTO){
    return OkrResult.success(planDataService.refreshPlanDataCom(reqDTO));
    }
/**
   * D3-13删除业务应用文档关系(公共)
   */
    @PostMapping("deleteBusAppDocRelaCom")
    public OkrResult<DeleteBusAppDocRelaComRespDto> deleteBusAppDocRelaCom(@RequestBody @Validated DeleteBusAppDocRelaComReqDto reqDTO){
    return OkrResult.success(planDataService.deleteBusAppDocRelaCom(reqDTO));
    }
/**
   * 11111D3-13查询业务应用文档关系列表(公共)
   */
    @PostMapping("queryBusAppDocRelaListCom")
    public OkrResult<QueryBusAppDocRelaListComRespDto> queryBusAppDocRelaListCom(@RequestBody @Validated QueryBusAppDocRelaListComReqDto reqDTO){
    return OkrResult.success(planDataService.queryBusAppDocRelaListCom(reqDTO));
    }
/**
   * D3-5判断是否总规划(公共)
   */
    @PostMapping("judgeIsMainplanCom")
    public OkrResult<JudgeIsMainplanComRespDto> judgeIsMainplanCom(@RequestBody @Validated JudgeIsMainplanComReqDto reqDTO){
    return OkrResult.success(planDataService.judgeIsMainplanCom(reqDTO));
    }
/**
   * D3判断更新规划资料操作可用(公共)
   */
    @PostMapping("judgeUpdatePlanDataUsableCom")
    public OkrResult<JudgeUpdatePlanDataUsableComRespDto> judgeUpdatePlanDataUsableCom(@RequestBody @Validated JudgeUpdatePlanDataUsableComReqDto reqDTO){
    return OkrResult.success(planDataService.judgeUpdatePlanDataUsableCom(reqDTO));
    }
/**
   * D3判断删除规划资料操作可用(公共)
   */
    @PostMapping("judgeDeletePlanDataUsableCom")
    public OkrResult<JudgeDeletePlanDataUsableComRespDto> judgeDeletePlanDataUsableCom(@RequestBody @Validated JudgeDeletePlanDataUsableComReqDto reqDTO){
    return OkrResult.success(planDataService.judgeDeletePlanDataUsableCom(reqDTO));
    }
/**
   * D3-5删除规划资料
   */
    @PostMapping("deletePlanData")
    public OkrResult<DeletePlanDataRespDto> deletePlanData(@RequestBody @Validated DeletePlanDataReqDto reqDTO){
    return OkrResult.success(planDataService.deletePlanData(reqDTO));
    }
/**
   * D3-5新增所有类型规划资料
   */
    @PostMapping("addAllTypePlanData")
    public OkrResult<AddAllTypePlanDataRespDto> addAllTypePlanData(@RequestBody @Validated AddAllTypePlanDataReqDto reqDTO){
    return OkrResult.success(planDataService.addAllTypePlanData(reqDTO));
    }
/**
   * D3更新当前规划资料
   */
    @PostMapping("refreshCurrentPlanData")
    public OkrResult<RefreshCurrentPlanDataRespDto> refreshCurrentPlanData(@RequestBody @Validated RefreshCurrentPlanDataReqDto reqDTO){
    return OkrResult.success(planDataService.refreshCurrentPlanData(reqDTO));
    }
/**
   * D3存档当前规划资料
   */
    @PostMapping("archiveCurrentPlanData")
    public OkrResult<ArchiveCurrentPlanDataRespDto> archiveCurrentPlanData(@RequestBody @Validated ArchiveCurrentPlanDataReqDto reqDTO){
    return OkrResult.success(planDataService.archiveCurrentPlanData(reqDTO));
    }
/**
   * D3-5修改规划资料
   */
    @PostMapping("updatePlanData")
    public OkrResult<UpdatePlanDataRespDto> updatePlanData(@RequestBody @Validated UpdatePlanDataReqDto reqDTO){
    return OkrResult.success(planDataService.updatePlanData(reqDTO));
    }
/**
   * D3-新增规划资料文档关系(公共)
   */
    @PostMapping("addBusAppDocRelaCom")
    public OkrResult<AddBusAppDocRelaComRespDto> addBusAppDocRelaCom(@RequestBody @Validated AddBusAppDocRelaComReqDto reqDTO){
    return OkrResult.success(planDataService.addBusAppDocRelaCom(reqDTO));
    }
/**
   * D3批量增业务应用文档关系(公共)
   */
    @PostMapping("batchAddBusAppDocRelaCom")
    public OkrResult<BatchAddBusAppDocRelaComRespDto> batchAddBusAppDocRelaCom(@RequestBody @Validated BatchAddBusAppDocRelaComReqDto reqDTO){
    return OkrResult.success(planDataService.batchAddBusAppDocRelaCom(reqDTO));
    }
/**
   * D3查询规划资料详情by主键(公共)
   */
    @PostMapping("queryPlanDataByPrimaryKeyDetailCom")
    public OkrResult<QueryPlanDataByPrimaryKeyDetailComRespDto> queryPlanDataByPrimaryKeyDetailCom(@RequestBody @Validated QueryPlanDataByPrimaryKeyDetailComReqDto reqDTO){
    return OkrResult.success(planDataService.queryPlanDataByPrimaryKeyDetailCom(reqDTO));
    }
}
